#include "common.h"

#include <stdlib.h>
#include <time.h>

////////////////////////////////////////////////////////////////////////////////

void Rand_init()
{
  srand(time(NULL));
}

int Rand_int()
{
  return rand();
}

int Rand_int(int max)
{
  return rand()%(max+1);
}

int Rand_int(int min,int max)
{
  return (rand()%(max-min+1))+min;
}

float Rand_float()
{
  return (float)(rand())/RAND_MAX;
}

float Rand_float(float min,float max)
{
  return min+(max-min)*Rand_float();
}

bool Rand_chance(float p)
{
  return Rand_float()<p;
}

////////////////////////////////////////////////////////////////////////////////

void Rect::centerIn(const Rect& r)
{
  x = r.x + (r.w - w) / 2;
  y = r.y + (r.h - h) / 2;
}

bool Rect::intersect(const Point& p) const
{
  return p.x >= x && p.y >= y && p.x < x + w && p.y < y + h;
}

////////////////////////////////////////////////////////////////////////////////

bool IdGen::isId(unsigned id)
{
  return _ids.contains(id);
}

unsigned IdGen::genId()
{
  unsigned id = 1;
  
  while (_ids.contains(id))
  {
    id++;
  }
  
  return id;
}

void IdGen::delId(unsigned id)
{
  _ids.removeVal(id);
}
